/**
 * Copyright 2020 Webank.
 *
 * <p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of the License at
 *
 * <p>http://www.apache.org/licenses/LICENSE-2.0
 *
 * <p>Unless required by applicable law or agreed to in writing, software distributed under the
 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.webank.blockchain.data.reconcile.entity;

import com.webank.blockchain.data.reconcile.constants.ResponseCode;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;

/**
 * @author wesleywang
 * @Description:
 * @date 2020/6/18
 */
@Data
public class Responses<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    private int code;

    private String msg;

    private T data;


    public Responses(int code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public static <T> Responses<T> createSuccessResult(T data) {
        return new Responses<T>(ResponseCode.HTTP_SUCCESS_CODE, StringUtils.EMPTY, data);
    }

    public static<T> Responses<T> createFailedResult(int code, String msg) {
        return new Responses<T>(code, msg, null);
    }
}
